/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controlacciones.ejb3.facade;

import controlacciones.ejb3.business.ConsultaLocal;
import controlacciones.ejb3.business.MantenimientoTipoLocal;
import controlacciones.ejb3.business.BeanBindingLocal;
import controlacciones.ejb3.business.BusquedaLocal;
import controlacciones.ejb3.business.CopiaArchivosLocal;
import controlacciones.ejb3.business.MantenimientoParametrosLocal;
import controlacciones.ejb3.business.MantenimientoTablasLocal;
import controlacciones.ejb3.business.PaginacionLocal;
import controlacciones.ejb3.business.RegistrarAccionLocal;
import controlacciones.ejb3.business.ReporteLocal;
import controlacciones.ejb3.business.ServicioIntegracionLocal;
import controlacciones.ejb3.business.ValorizarAccionLocal;
import controlacciones.ejb3.entity.TbAccion;
import controlacciones.ejb3.entity.TbArea;
import controlacciones.ejb3.entity.TbCategoriaAccion;
import controlacciones.ejb3.entity.TbClasificacionAccion;
import controlacciones.ejb3.entity.TbCliente;
import controlacciones.ejb3.entity.TbDatosCliente;
import controlacciones.ejb3.entity.TbMetas;
import controlacciones.ejb3.entity.TbParametros;
import controlacciones.ejb3.entity.TbResultado;
import controlacciones.ejb3.entity.TbTablasTipo;
import controlacciones.ejb3.entity.TbTipoAccion;
import controlacciones.ejb3.entity.TbTipoAccionClasificacionAccionArea;
import controlacciones.ejb3.pojo.TableBeanBinding_Accion;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosAcciones;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosAccionesAprobar;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosAdvanceMetas;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosArchivoProgramaCorte;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosClasificacionTipoAccionArea;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosDetalleTipoAccion;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosFactura;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosLecturas;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosReaperturas;
import controlacciones.ejb3.pojo.TableBeanBinding_DatosValorizacionTipoAccion;
import controlacciones.ejb3.pojo.TableBeanBinding_ErrorResultado;
import controlacciones.ejb3.pojo.TableBeanBinding_Progcort;
import controlacciones.ejb3.pojo.TableBeanBinding_RESUL;
import controlacciones.ejb3.pojo.TableBeanBinding_TbMetas;
import java.io.File;
import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;

/**
 *
 * @author Vanessa
 */
@Stateless
public class GestionFacadeBean implements GestionFacadeRemote {

    public int getNumRegistrosCortes( ){
        return consultaLocal.getNumRegistrosCortes();
    }

    public List<TableBeanBinding_Progcort> getListaCorte(  int pagActual, int pagTamanno ) {
        return beanBindingLocal.getListaCorte(pagActual, pagTamanno);
    }
    //Mantenimiento Parametros
    public int getContadorArchivoSICI(){
        return mantenimientoParametrosLocal.getContadorArchivoSICI();
    }
    public List getListaDatosArchivoResultado( ) {
        return beanBindingLocal.getListaDatosArchivoResultado();
    }

   public String procesarResultadoAcciones( String cod_area, String log_user ) throws Exception{
        return registrarAccionLocal.procesarResultadoAcciones(cod_area, log_user);
    }

    public int getNumRegistrosAcciones( TbArea area, String fecha){
        return consultaLocal.getNumRegistrosAcciones(area, fecha);
    }

    public int getNumRegistrosResultados( String codarea){
        return consultaLocal.getNumRegistrosResultados(codarea);
    }

    public int getNumRegistrosLecturas( String fecha){
        return consultaLocal.getNumRegistrosLecturas(fecha);
    }

    public int getNumRegistrosFacturas(String fecha){
        return consultaLocal.getNumRegistrosFacturas(fecha);
    }

    public List<TableBeanBinding_Accion> getListaDatosAcciones( TbArea area, String fecha, String codTipoAccion, String numInscri, int pagActual, int pagTamanno ) {
        return beanBindingLocal.getListaDatosAcciones(area, fecha, codTipoAccion, numInscri, pagActual, pagTamanno);
    }

    public List<TableBeanBinding_DatosAcciones> getListaDatosAccionesByFecha( TbArea area, String fecha, int pagActual, int pagTamanno ) throws Exception {
        try {
            return beanBindingLocal.getListaDatosAccionesByFecha(area, fecha, pagActual, pagTamanno);
        } catch (Exception e) {
            throw e;
        }
    }
    //Integracion
    public void integraProgramaCorte( String fileName ){
         servicioIntegracionLocal.integraProgramaCorte(fileName);
    }

    public void registraProgramaCorte( String sector, String urba ){
        servicioIntegracionLocal.registraProgramaCorte(sector, urba);
    }

    public void procesarProgramasCorte( List<TableBeanBinding_DatosArchivoProgramaCorte> archProg ){
        servicioIntegracionLocal.procesarProgramasCorte(archProg);
    }

    public List<TableBeanBinding_DatosArchivoProgramaCorte> getListaArchivosProcesados(){
        return servicioIntegracionLocal.getListaArchivosProcesados();
    }

    public List<TableBeanBinding_DatosArchivoProgramaCorte> getListaArchivosPendientes(){

        return servicioIntegracionLocal.getListaArchivosPendientes();
    }
    //Registrar Accion

    public void registraAccionMasiva( List<TbCliente> clientes, TbTipoAccionClasificacionAccionArea tipoAccionClasificacionAccionArea, String observacion, String log_user  ) throws Exception{
        try {
            registrarAccionLocal.registraAccionMasiva(clientes, tipoAccionClasificacionAccionArea, observacion, log_user);
        } catch (Exception e) {
            throw e;
        }
    }

    public void registraAccionIndividual( TbCliente cliente, TbTipoAccionClasificacionAccionArea tipoAccionClasificacionAccionArea, String observacion, String log_user  ) throws Exception{
        try {
            registrarAccionLocal.registraAccionIndividual(cliente, tipoAccionClasificacionAccionArea, observacion, log_user);
        } catch (Exception e) {
            throw e;
        }
    }

    public void registraOcurrencia( TbCliente cliente, TbTipoAccionClasificacionAccionArea tipoAccionClasificacionAccionArea, String observacion, String log_user  )throws SQLException, Exception{
       try {
            registrarAccionLocal.registraOcurrencia(cliente, tipoAccionClasificacionAccionArea, observacion, log_user);
        } catch (Exception e) {
            throw e;
        }
    }

    public void registraAccionCorteReapertura( List<TbCliente> clientes, TbTipoAccionClasificacionAccionArea tipoAccionClasificacionAccionArea, String observacion, String log_user ) throws Exception{
        try {
            registrarAccionLocal.registraAccionCorteReapertura(clientes, tipoAccionClasificacionAccionArea, observacion, log_user);
        } catch (Exception e) {
            throw e;
        }
    }

    public void registrarResultadoAcciones( List<TbResultado> resultados ) throws Exception{
       registrarAccionLocal.registrarResultadoAcciones(resultados);
    }

    public void procesarCargaTrabajoFecha( String fecha, TbArea area ) throws SQLException{
        registrarAccionLocal.procesarCargaTrabajoFecha(fecha, area);
    }

    public String  procesarReaperturas( String cod_area, String fecProceso, String log_user, String obser  ) throws SQLException{
        return registrarAccionLocal.procesarReaperturas(cod_area, fecProceso, log_user, obser);
    }

    public String  ejecutarIntegracionReaperturas( ) throws SQLException{
        return registrarAccionLocal.ejecutarIntegracionReaperturas( );
    }

    public String copiaArchivoResultados( File origen, String cod_area){
        return copiaArchivosLocal.copiaArchivoResultados(origen, cod_area);
    }
    
    public String copiarArchivosFacturas()throws Exception{
        return registrarAccionLocal.copiarArchivosFacturas();
    }

    public String  ejecutarIntegracionFacturas( ) throws SQLException{
        return registrarAccionLocal.ejecutarIntegracionFacturas( );
    }

    public String  ejecutaCopiaFacturas( String fecProceso, String log_user) throws SQLException{
        return registrarAccionLocal.ejecutaCopiaFacturas(fecProceso, log_user);
    }

    public String  procesarFacturas( String cod_area, String fecProceso, String log_user, String obser  ) throws SQLException{
        return registrarAccionLocal.procesarFacturas(cod_area, fecProceso, log_user, obser);
    }

    public String  ejecutarIntegracionResultados( String codarea, String nomjob ) throws SQLException{
        return registrarAccionLocal.ejecutarIntegracionResultados(codarea, nomjob);
    }
     public String copiarArchivosLecturas()throws Exception{
        return registrarAccionLocal.copiarArchivosLecturas();
    }

    public String  ejecutarIntegracionLecturas( ) throws SQLException{
        return registrarAccionLocal.ejecutarIntegracionLecturas();
    }

    public String  procesarLecturas( String cod_area, String fecProceso, String log_user, String obser  ) throws SQLException{
        return registrarAccionLocal.procesarLecturas(cod_area, fecProceso, log_user, obser);
    }

    public String  copiarReaperturas( String fecProceso, String log_user) throws SQLException{
        return registrarAccionLocal.copiarReaperturas(fecProceso, log_user);
    }

    public String  procesarCargaTrabajoFecha_DBF( String fecha, TbArea area ) throws SQLException{
        return registrarAccionLocal.procesarCargaTrabajoFecha_DBF(fecha, area);
    }

    public void actualizarAccion( TbAccion tbAccion ){
        registrarAccionLocal.actualizarAccion(tbAccion);
    }
    //Man
    public void actualizarParametros(TbParametros tbParametros) throws Exception{
        mantenimientoTablasLocal.actualizarParametros(tbParametros);
    }
    
    public List<TbArea> getListaArea() throws Exception{
        try {
            return mantenimientoTipoLocal.getListaArea();
        } catch (Exception e) {
            throw e;
        }
    }

    public List<TbTablasTipo> getListaTipoObservacion() throws Exception{
        try {
            return mantenimientoTipoLocal.getListaTipoObservacion();
        } catch (Exception e) {
            throw e;
        }
    }

    public List<TbTablasTipo> getListaTipoEjecucion() throws Exception{
        try {
            return mantenimientoTipoLocal.getListaTipoEjecucion();
        } catch (Exception e) {
            throw e;
        }
    }

    public List<TbTablasTipo> getListaCategoriaAccion() throws Exception{
        try {
            return mantenimientoTipoLocal.getListaCategoriaAccion();
        } catch (Exception e) {
            throw e;
        }
    }

    public List<TbTablasTipo> getListaClasificacionAccion()throws Exception{
        try {
            return mantenimientoTipoLocal.getListaClasificacionAccion();
        } catch (Exception e) {
            throw e;
        }
    }

    public List<TbTipoAccion> getListaTbTipoAccion(){

        return mantenimientoTipoLocal.getListaTbTipoAccion();
    }

    public List<TbClasificacionAccion> getListaTbClasificacionAccion(){
        return mantenimientoTipoLocal.getListaTbClasificacionAccion();
    }
    //Paginacion

    public List<TableBeanBinding_ErrorResultado> getListaDatosErrorResultado( String log_user ) {
        return beanBindingLocal.getListaDatosErrorResultado(log_user);
    }

    public List<TableBeanBinding_RESUL> getListaResultados( String codarea,int pagActual, int pagTamanno ) {
        return beanBindingLocal.getListaResultados( codarea, pagActual, pagTamanno);
    }

    public List<TableBeanBinding_DatosLecturas> getListaLecturas( String fecha, int pagActual, int pagTamanno ) {
        return beanBindingLocal.getListaLecturas(fecha, pagActual, pagTamanno);
    }

    public List<TableBeanBinding_DatosFactura> getListaFacturas( String fecha, String log_user, int pagActual, int pagTamanno ) {
        return beanBindingLocal.getListaFacturas(fecha, log_user, pagActual, pagTamanno);
    }

    public List<TbTipoAccionClasificacionAccionArea> getTipoAccionByAreaIndividuales( String codArea ) throws Exception{
        try {
            return consultaLocal.getTipoAccionByAreaIndividuales(codArea);
        } catch (Exception e) {
            throw e;
        }
    }

    public List<TableBeanBinding_DatosFactura> getListaFacturas( String fecha, String log_user ) {
        return paginacionLocal.getListaFacturas(fecha, log_user);
    }

    public List<TableBeanBinding_DatosFactura> getListaFacturasTOP( String fecha, String log_user ) {
        return paginacionLocal.getListaFacturasTOP(fecha, log_user);
    }

    public void Totfac_iniciaConfiguracion(int pagTamanno){
        paginacionLocal.Totfac_iniciaConfiguracion(pagTamanno);
    }

    public void Totfac_siguiente() {
        paginacionLocal.Totfac_siguiente();
    }

    public void Totfac_anterior() {
        paginacionLocal.Totfac_anterior();
    }

     public void Totfac_primero() {
         paginacionLocal.Totfac_primero();
     }

     public void Totfac_ultimo(){
       paginacionLocal.Totfac_ultimo();
     }
    //Consulta

    public TbParametros buscarParametro(Object id) {
        return consultaLocal.buscarParametro(id);
    }

    public boolean seEstaEjecutandoJob(String codarea ){
        return consultaLocal.seEstaEjecutandoJob( codarea );
    }

    public boolean seEstaEjecutandoJob2( String codarea ){
        return consultaLocal.seEstaEjecutandoJob2( codarea );
    }

    public boolean  verificarJobEjecutando( String nom_job ) throws SQLException{
        return consultaLocal.verificarJobEjecutando(nom_job);
    }

    public boolean  verificarArchivoProcesadoFacturas( String fechaProceso ) throws SQLException{
        return consultaLocal.verificarArchivoProcesadoFacturas(fechaProceso);
    }

    public boolean  verificarArchivoProcesadoLecturas( String fechaProceso ) throws SQLException{
        return consultaLocal.verificarArchivoProcesadoLecturas(fechaProceso);
    }

    public List<TableBeanBinding_DatosReaperturas> getListaReaperturas( String fecha, String log_user ) {
        return beanBindingLocal.getListaReaperturas(fecha, log_user);
    }


    public List<TbTipoAccionClasificacionAccionArea> getTipoAccionNotificacionesByArea( String codArea ) throws Exception{
        try {
            return consultaLocal.getTipoAccionNotificacionesByArea(codArea);
        } catch (Exception e) {
            throw e;
        }
    }
    public List<TbTipoAccionClasificacionAccionArea> getTipoAccionByAreaIndividuales( String codArea, int codTipoAccion ) throws Exception{
        try {
            return consultaLocal.getTipoAccionByAreaIndividuales(codArea, codTipoAccion);
        } catch (Exception e) {
            throw e;
        }
    }

//    public List<TbTipoAccionClasificacionAccionAreaVerCodigo> getTipoAccionByAreaVerCodigo( String codArea ) throws Exception{
//        try {
//            return consultaLocal.getTipoAccionByAreaVerCodigo(codArea);
//        } catch (Exception e) {
//            throw e;
//        }
//    }


    public List<TbTipoAccionClasificacionAccionArea> getTipoAccionByArea( String codArea ) throws Exception{
        try {
            return consultaLocal.getTipoAccionByArea(codArea);
        } catch (Exception e) {
            throw e;
        }
    }


    public List<TbTipoAccionClasificacionAccionArea> getTipoAccionByArea( String codArea, int codTipoAccion ) throws Exception{
        try {
            return consultaLocal.getTipoAccionByArea(codArea, codTipoAccion);
        } catch (Exception e) {
            throw e;
        }
    }

    public TbDatosCliente getDatosCliente( String numInscrip ) throws Exception{
        try {
            return consultaLocal.getDatosCliente(numInscrip);
        } catch (Exception e) {
            throw e;
        }
    }

    public List<TbAccion> getAccionesForCargaTrabajo( String fecha ) throws Exception{
        try {
            return consultaLocal.getAccionesForCargaTrabajo( fecha);
        } catch (Exception e) {
            throw e;
        }
       
    }

    public List<TbDatosCliente> getDatosClientes( List dat ) throws Exception{
        try {
            return consultaLocal.getDatosClientes(dat);
        } catch (Exception e) {
            throw e;
        }
    }


    //BeanBinding
    public List<TableBeanBinding_DatosAcciones> getAccion( String codAccion ) throws Exception{
        try {
            return beanBindingLocal.getAccion(codAccion);
        } catch (Exception e) {
            throw e;
        }
    }

    public List<TableBeanBinding_DatosAcciones> getListaDatosAccionesByMes( TbTipoAccionClasificacionAccionArea tipoAccion, String ano, String mes ) throws Exception  {
        try {
            return beanBindingLocal.getListaDatosAccionesByMes(tipoAccion, ano, mes);
        } catch (Exception e) {
            throw e;
        }
    }
    public List<TableBeanBinding_DatosAcciones> getListaDatosAccionesByFecha( TbArea area, String fechaInicio, String fechaFin ) {
        return beanBindingLocal.getListaDatosAccionesByFecha(area, fechaInicio, fechaFin );
    }

    public List<TableBeanBinding_DatosDetalleTipoAccion> getListaDatosTipoAccion( TbTipoAccion tbTipoAccion  ) throws Exception {
        try{
            return beanBindingLocal.getListaDatosTipoAccion(tbTipoAccion);
        }catch( Exception e){
            throw e;
        }
    }

    public List<TableBeanBinding_DatosClasificacionTipoAccionArea> getListaClasificacionTipoAccionArea( TbTipoAccion tbTipoAccion  ) {
        return beanBindingLocal.getListaClasificacionTipoAccionArea(tbTipoAccion);
    }

    public List<TableBeanBinding_DatosAccionesAprobar> getListaAccionesAprobar( String fechaInicio, String fechaFin  ) {
        return beanBindingLocal.getListaAccionesAprobar( fechaInicio, fechaFin );
    }

     public List<TableBeanBinding_TbMetas> getListaMetas( TbTipoAccion tbTipoAccion ) {
        return beanBindingLocal.getListaMetas(tbTipoAccion);
    }

    public List<TableBeanBinding_DatosValorizacionTipoAccion> getListaValorizacionTipoAccion( String ano, String mes ) {
         return beanBindingLocal.getListaValorizacionTipoAccion(ano, mes);
    }
    //Valorizar

    public String sp_valorizarAcciones( String ano, String mes  )throws SQLException
     {
         return valorizarAccionLocal.sp_valorizarAcciones(ano, mes);
     }

    //Busquedas
    public TbTipoAccion buscarTipoAccion(Object id) {
        return busquedaLocal.buscarTipoAccion(id);
    }

    public TbAccion buscarAccion(Object id) {
        return busquedaLocal.buscarAccion(id);
    }

    //TbMetas
    public void insertarMeta( TbMetas  tbMetas ) throws Exception{
         mantenimientoTablasLocal.insertarMeta( tbMetas );
    }

    public void actualizarMeta( TbMetas  tbMetas ) throws Exception{
         mantenimientoTablasLocal.actualizarMeta( tbMetas );
    }

    public void eliminarMeta( TbMetas  tbMetas ) throws Exception{
         mantenimientoTablasLocal.eliminarMeta( tbMetas );
    }

    public List<TableBeanBinding_DatosAdvanceMetas> getListaDatosAvanceMetas(  String fechaInicio, String fechaFin )throws SQLException
    {
        return beanBindingLocal.getListaDatosAvanceMetas(fechaInicio, fechaFin);
    }

    public List<TableBeanBinding_DatosAcciones> getListaDatosAccionesByFecha( TbTipoAccionClasificacionAccionArea tipoAccion, String fecha ) throws Exception{
        try {
            return beanBindingLocal.getListaDatosAccionesByFecha(tipoAccion, fecha);
        } catch (Exception e) {
            throw e;
        }
    }    
    
    //Reporte
    public JasperPrint generarReporte( String reporte, Map parametros ) throws SQLException, JRException {
        return reporteLocal.generarReporte(reporte, parametros);
    }

    public List<TbCategoriaAccion> getListaTbCategoriaAccion(){
        return mantenimientoTipoLocal.getListaTbCategoriaAccion();
    }

    //Mantenimiento Tablas
     public void insertarCategoriaAccion( TbCategoriaAccion tbCategoriaAccion ) throws Exception{
        mantenimientoTablasLocal.insertarCategoriaAccion(tbCategoriaAccion);
    }
    public void actualizarCategoriaAccion( TbCategoriaAccion tbCategoriaAccion ) throws Exception{
        mantenimientoTablasLocal.actualizarCategoriaAccion(tbCategoriaAccion);
    }
    public void eliminarCategoriaAccion( TbCategoriaAccion tbCategoriaAccion ) throws Exception{
        mantenimientoTablasLocal.eliminarCategoriaAccion(tbCategoriaAccion);
    }

    public void insertarTipoAccion( TbTipoAccion tbTipoAccion ) throws Exception{
         mantenimientoTablasLocal.insertarTipoAccion(tbTipoAccion);
    }

    public void actualizarTipoAccion( TbTipoAccion tbTipoAccion ) throws Exception{
         mantenimientoTablasLocal.actualizarTipoAccion(tbTipoAccion);
    }

    public void eliminarTipoAccion( TbTipoAccion tbTipoAccion ) throws Exception{
         mantenimientoTablasLocal.eliminarTipoAccion(tbTipoAccion);
    }

    //TbTipoAccionClasificacionAccionArea
    public void insertarTipoAccionClasificacionAccionArea( TbTipoAccionClasificacionAccionArea  tbTipoAccionClasificacionAccionArea ) throws Exception{
         mantenimientoTablasLocal.insertarTipoAccionClasificacionAccionArea( tbTipoAccionClasificacionAccionArea );
    }

    public void actualizarTipoAccionClasificacionAccionArea( TbTipoAccionClasificacionAccionArea  tbTipoAccionClasificacionAccionArea ) throws Exception{
         mantenimientoTablasLocal.actualizarTipoAccionClasificacionAccionArea( tbTipoAccionClasificacionAccionArea );
    }

    public void eliminarTipoAccionClasificacionAccionArea( TbTipoAccionClasificacionAccionArea  tbTipoAccionClasificacionAccionArea ) throws Exception{
         mantenimientoTablasLocal.eliminarTipoAccionClasificacionAccionArea( tbTipoAccionClasificacionAccionArea );
    }




    @EJB
    RegistrarAccionLocal registrarAccionLocal;

    @EJB
    MantenimientoTipoLocal mantenimientoTipoLocal;

    @EJB
    ConsultaLocal consultaLocal;

    @EJB
    BeanBindingLocal beanBindingLocal;

    @EJB
    ReporteLocal reporteLocal;

    @EJB
    MantenimientoTablasLocal mantenimientoTablasLocal;

    @EJB
    BusquedaLocal busquedaLocal;

    @EJB
    ServicioIntegracionLocal servicioIntegracionLocal;

    @EJB
    ValorizarAccionLocal valorizarAccionLocal;

    @EJB
    PaginacionLocal paginacionLocal;

    @EJB
    CopiaArchivosLocal copiaArchivosLocal;

    @EJB
    MantenimientoParametrosLocal mantenimientoParametrosLocal;
}
